package _09_高频题;

public class _7_整数反转 {

    // 数值回溯，判断值是否溢出
    public int reverse(int x) {
        int res = 0;
        while (x != 0) {
            int num1 = x % 10;
            int mid = res * 10 + num1;
            // 判读是否溢出
            if ((mid - num1) / 10 != res) return 0;
            res = mid;
            x /= 10;
        }
        return res;
    }

    // 使用long，类型，判断int是否溢出
    public int reverse1(int x) {
        long res = 0;
        while (x != 0) {
            res = res * 10 + x % 10;
            // 判读是否溢出
            if (res > Integer.MAX_VALUE || res < Integer.MIN_VALUE) return 0;
            x /= 10;
        }
        return (int)res;
    }
}
